Pour quoi faire ?
Pour cette manipulation, il est important que le logiciel soit présent dans les dépôts et que les sources soient aussi disponibles.
Descriptif rapide de la manipulation :
Tout d'abord il faut installer les logiciels pour compiler c'est à dire un compilateur et des outils pour la compilation, ainsi que les utilitaires APT dont nous allons nous servir.
installez les paquets build-essential, dpkg-dev, fakeroot. Soit plus simplement les lignes de commandes suivantes :
sudo apt-get install build-essential dpkg-dev fakeroot
Ensuite il faudra récupérer les sources depuis un dépôt APT, pour cela il faut ajouter une ligne deb-src du dépôt correspondant au package binaire.
Par exemple si le logiciel est dans main, il faut ajouter cette ligne (qui est un exemple qui ne marchera pas, je suppose que vous savez de quoi je parle) dans votre /etc/apt/sources.list
deb-src http://url distribution main
Ensuite on update la liste des paquets :
sudo apt-get update
Dans cet exemple je modifie le paquet vlc. Pour récupérer les sources on fait simplement :
apt-get source vlc
Et pour installer les paquets pour compiler vlc (remarquez que la plupart de ces dépendances finissent en -dev, en fait ce sont souvent les #includes que vous voyez dans les sources C, ils se trouvent dans /usr/include) Une commande très pratique : (Notez aussi qu'on a pas eu besoin de sudo pour télécharger les sources, ni pour compiler d'ailleurs)
sudo apt-get build-dep vlc
Les sources seront installées dans le répertoire a partir duquel vous avez lancé le apt-get source.
Normalement les sources sont désarchivées automatiquement par dpkg-source (de dpkg-dev) Si ce n'est pas le cas, il faudra le faire à la main.
Ensuite déplaçons nous dans le dossier des sources :
cd vlc*
Maintenant que vous avez les sources, vous pouvez les modifier, les patcher etc.
Ensuite on va lancer la compilation. Toute la compilation sera gérée par le script debian/rules. Dans ce script il y a surement une ligne qui lance les paramètres du ./configure, vous pouvez aussi modifier cette ligne. (Ce script est fait par le mainteneur du paquet, donc suivant la personne il peut être présenté de manière différente ou dans plusieurs fichier etc, donc je ne peux pas être plus explicite).
Ensuite c'est vraiment un jeux d'enfant, il suffit de lancer le script, en faisant croire au script qu'on est root.
En fait ce script procède de la manière suivante :
sudo make install, on aurait copié vlc dans /usr/bin/vlc (d'où le sudo), mais là on veut juste créer $PWD/debian/build/urs/bin/vlc et on a le droit en tant qu'utilisateur…
Bref, ceci justifie l'utilisation de fakeroot.
Donc pour lancer la compilation et la création du paquet, une seule commande (ultime) :
fakeroot debian/rules binary
Patientez, la compilation dépend de votre machine et de la taille des sources.
Quand c'est fini (et qu'il n'y a pas eu d'erreurs), le paquet crée devrait être dans le répertoire parent ... Pour l'installer, rien de plus simple :
sudo dpkg -i ../vlc-*.deb
Et voilà, c'est simple propre et rapide. Ce n'est qu'un aperçu de ce que APT sait faire, donc je vous invite à aller plus loin, le site de debian debian.org regorge de documentation sur APT.
Bon packaging et bonnes compilations
Contributeur : philpep-tlse